<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Request;

class Role extends AdminController
{
	public function index()
	{
		$query = Db::field('*')
			->name('role')
			->select();
			// var_dump($query);
			return view('admin@role/index', ['data' => $query]);
	}


	public function add()
	{
		return view('admin@role/add');
	}


	public function doAdd()
	{
		// var_dump(input('post.'));
		$query = Db::name('role')->insert(input('post.'));
		$this->success('添加成功', 'admin/Role/index');
	}


	public function fenp($id)
	{
		// 查找角色 的名字
		$rolename = Db::field('id,name')
			->name('role')
			->where('id', 'eq', $id)
			->find();
		// dump($rolename);

		// 查询 所有权限
		$node = Db::name('node')
			->where('status', 1)
			->select();
		// dump($node);

		// 查询该角色的所有权限
		$role = Db::name('role_node')
			->where('rid', 'eq', $id)
			->select();
		// dump($role);
		$myrole = array();
		foreach ($role as $key => $value) {
			$myrole[] = $value['nid'];
		}
		// dump($myrole);

		$this->assign("rolename",$rolename);
		$this->assign('node', $node);
		$this->assign('role', $myrole);
		return view();
	}


	public function update()
	{
		// dump(input('post.'));
		// Db::startTrans();
		// try{

		// } catch (\Exception $e) {

		// }
		if(empty(input('post.role/a'))) {
			$this->error('请最少选择一个权限');
		}

		$rid  = input('post.rid');
		// 删除角色之前的全部权限
		$a = Db::name('role_node')
			->where('rid', $rid)
			->delete();
		// 遍历数组 然后添加数据库
		foreach(input('post.role/a') as $k => $v) {
			$data['rid'] = $rid;
			$data['nid'] = $v;
			$b = Db::name('role_node')->insert($data);
		}
		if($a&&$b) {
			$this->success('修改成功', 'admin/Role/index');
		} else {
			$this->error('修改失败');
		}
	}


	public function edit()
	{
		$id = input('get.id');
		//查出数据
		$data = Db::name('role')->where('id', 'eq', $id)->find();
		// dump($data);
		return view('admin@role/edit',['data'=>$data]);
	}


	// 执行修改操作
	public function save()
	{
		$data = input('post.');
		$id = input('post.id');
		// dump($data);die;
		$req = Db::name('role')->where('id', $id)->update($data);
		if($req) {
			$this->success('修改成功', 'admin/role/index');
		} else {
			$this->error('请稍后再试');
		}
	}


	public function dodel()
	{
		$id = input('get.id');
		// dump($rid);
		$role = Db::name('role')->where('id', $id)->delete();
		if($role) {
			$this->success('删除成功', 'admin/Role/index');
		} else {
			$this->error('删除失败');
		}
	}
}
